home *** CD-ROM | disk | FTP | other *** search
/ Software of the Month Club 2000 October / Software of the Month - Ultimate Collection Shareware 277.iso / pc / PROGRAMS / UTILITY / WINLINUX / DATA1.CAB / programs_-_usrdoc / SVGALIB-.{2E / 0-INSTAL.{_D < prev    next >
Text File  |  1999-09-17  |  13KB  |  258 lines

  1. Installation of Svgalib v1.2.12 or higher.
  2.  
  3. Table of contents:
  4.     0. Introduction
  5.     1. Directories
  6.     2. Installation
  7.     3. SVGALib port to ALPHA AXP hardware
  8.  
  9. 0. Introduction
  10.    This is a low level graphics library for Linux, based on VGAlib 1.2 by
  11.    Tommy Frandsen. VGAlib supported a number of standard VGA graphics
  12.    modes, as well as Tseng ET4000 high resolution 256-color modes.
  13.    Nowadays support for even more hardware is given. For details on
  14.    supported chipsets, see the file 0-README which is equal to man 7
  15.    svgalib (when svgalib is installed). 
  16.  
  17.    It supports transparent virtual console switching, that is, you can
  18.    switch consoles to and from text and graphics mode consoles using
  19.    alt-[function key]. Also, svgalib corrects most of VGAlib's textmode
  20.    corruption behaviour by catching SIGSEGV, SIGFPE and SIGILL, and
  21.    ensuring that a program is running in the currently visible virtual
  22.    console before setting a graphics mode. Svgalib uses SIGUSR1 and SIGUSR2
  23.    internally to do so.
  24.  
  25.    When the library is first used by a program at run-time, the chipset is
  26.    detected and the appropriate driver is used. This means that a graphics
  27.    program will work on any card that is supported by svgalib, if the mode
  28.    it uses is supported by the chipset driver for that card. The library
  29.    is upwardly compatible with VGAlib. 
  30.  
  31.    The set of drawing functions provided by svgalib itself is limited
  32.    (mostly unchanged from VGAlib) and unoptimized; you can however use
  33.    vga_setpage and graph_mem (which points to the 64K VGA framebuffer) in
  34.    a program or graphics library. A fast external framebuffer graphics
  35.    library for linear and banked 1, 2, 3 and 4 bytes per pixel modes is
  36.    included (it also indirectly supports planar VGA modes). See 'man 7
  37.    vgagl' for details.
  38.  
  39.    One obvious application of the library is a picture viewer. Several are
  40.    available, along with animation viewers. See the references at the end
  41.    of 0-README. 
  42.  
  43.    I have added a simple VGA textmode font restoration utility
  44.    (restorefont) which may help if you suffer from XFree86 textmode font
  45.    corruption. It can also be used to change the textmode font. It's in
  46.    the utils/ directory, along with a README and some other textmode
  47.    utilities: restoretextmode (which saves/restores textmode registers),
  48.    restorepalette, and the script textmode. If you run the savetextmode
  49.    script to save textmode information to /tmp, you'll be able to restore
  50.    textmode by running the textmode script. 
  51.  
  52.    If you have an ET4000 card, you should read the 0-README in the et4000/
  53.    directory. You will probably want to replace the ET4000 registers. 
  54.  
  55. 1. Directories
  56.    doc/            README's and man pages. See the 0-README in this
  57.             directory for info on how to read these man pages
  58.             without installing svgalib and how to produce nice
  59.             printouts.
  60.    demos/        Demo and test programs.
  61.    utils/        Textmode/font utilities.
  62.    src/            Main library source.
  63.    src/mouse/        Source for mouse interface.
  64.    src/keyboard/    Source for keyboard interface.
  65.    gl/            External framebuffer graphics library sources.
  66.    support/        DOS-based utility for dumping VGA registers.
  67.    et4000/        Notes, utilities and sample registers for ET4000.
  68.    mach32/        Notes and a utility for the ATI mach32 driver.
  69.    jump/        Configuration files for building DLL shared library.
  70.    sharedlib/        Shared library image and stubs.
  71.    threeDKit/        Routines to draw 3-dimensional triangles and
  72.             3D demos using these.
  73.    lrmi-0.5m/        Linux real mode library (used for VESA driver) 
  74.             including a utility for restoring text mode
  75.  
  76.    I welcome any questions, comments, suggestions, bug-reports, etc.
  77.  
  78.    The source code is rather a mess, but there's hope. The new XFree86-style
  79.    driver interface (used by the Cirrus and S3 drivers) and kernel module
  80.    graphics that some are experimenting with should provide some momentum.
  81.  
  82.    Harm Hanemaayer
  83.    hhanemaa@cs.ruu.nl
  84.  
  85.    Current maintainer is
  86.    Matan Ziv-Av <zivav@cs.bgu.ac.il>
  87.  
  88. 2. Installation
  89.    If yopu have a glibc2 based system (RH5.?. Debian2...) then you
  90.    must edit Makefile.cfg to uncomment the line USEGLIBC=yes.
  91.    If you are happy with the configuration in 'Makefile.cfg' which means
  92.    that you want to install an ELF shared library and probably an a.out
  93.    shared library for support of some old binaries (and if the svgalib tar
  94.    file you got already contains such an precompiled a.out shared library)
  95.    just running
  96.  
  97.    make install
  98.  
  99.    as root should take care of proper installation. After installation,
  100.    you MUST edit /etc/vga/libvga.config to set the monitor and mouse type.
  101.    Depending on your hardware, other setup might be required. Checkout
  102.    'man 7 svgalib' for details after you installed svgalib (or see
  103.    doc/0-README)
  104.  
  105.    It is a good idea to read and check the configurable section of
  106.    Makefile.cfg nevertheless, even if you don't think you have to. Also,
  107.    if your are using GLIBC you have to uncomment the definition of
  108.    USEGLIBC in Makefile.cfg as glibc is not completely compatible to the
  109.    linux libc (at least at compile time).
  110.  
  111.    Let me rephrase this: YOU MUST COMPILE AND INSTALL AS ROOT.
  112.    If you don't nothing bad will happen during compilation, but certain
  113.    tools won't be able to become SETUID ROOT which is required for
  114.    proper operation.
  115.  
  116.    In case you change anything in 'Makefile.cfg' which does not just control
  117.    which parts to install and where, you *MUST* issue a 'make clean' prior to
  118.    'make install' to remove any already compiled objects and force complete
  119.    recompilation. 
  120.  
  121.    Edit Makefile.cfg to change installation paths and to select the parts
  122.    that should be installed.
  123.  
  124.    If you have an ET4000 card, read 'man 7 svgalib.et4000' and copy the
  125.    appropriate register file to et4000.regs. Remember to set the DAC type. 
  126.  
  127.    The default behaviour is the following:
  128.  
  129.    Shared libraries are installed in /lib and /usr/local/lib, header files
  130.    in /usr/local/include (any old header files in /usr/include are
  131.    removed). In the Slackware distribution the linkable libraries are in
  132.    /usr/lib, and the utilities in /usr/bin; these are now removed by 'make
  133.    install'. Until now just doing make install with Slackware might have
  134.    produced duplicate binaries, but fortunately the newer version in
  135.    /usr/local/* would have taken precedence in use. 
  136.  
  137.    The et4000 registers (et4000.regs) are installed as
  138.    /etc/vga/libvga.et4000, but only if this file does not exit yet. The
  139.    same goes for the configuration file, libvga.config. 
  140.  
  141.    Textmode utilities are installed in /usr/local/bin. These are
  142.    restorefont, runx, restorepalette, dumpreg, restoretextmode, textmode,
  143.    savetextmode, fix132x43, and mode3. 
  144.  
  145.    If you change Makefile.cfg to install the static libraries, static
  146.    libraries are compiled, and installed in /usr/local/lib. Note that you
  147.    do not need to do this; the shared library is enough. 
  148.  
  149.    If you now run 'make demoprogs', the demo programs are created in the
  150.    demos/ and threeDKit/ directory. If you 
  151.  
  152.    You can remove previously installed files (not the et4000 registers and
  153.    config file and manual pages) with 'make uninstall'.
  154.  
  155.    In 1.28 the makefiles were changed. With minimal effort you can compile
  156.    it from a separate (even read-only) source tree. Just make a copy of
  157.    Makefile and Makefile.cfg into a writable dir, and change srcdir (or
  158.    override from environment) to the directory where the source code is.
  159.  
  160.    This feature, as well as the code for ELF compilation was kindly
  161.    contributed by Stephen Lee <sl14@crux1.cit.cornell.edu>.
  162.  
  163.    `make static' compiles a static version of svgalib. It is not
  164.    automatically installed by default but you can enable that from
  165.    Makefile.cfg. Note though, that if you specify installation of the static
  166.    libraries in 'Makefile.cfg' a simple 'make install' will compile the 
  167.    static library first.
  168.  
  169.    If you do not configure Makefile.cfg to install the shared libs, the
  170.    demoprogs and utilities are linked against the new static lib
  171.    (regardless of one already installed). However, the static libraries are 
  172.    not build automatically then. You must issue a 'make static' first.
  173.  
  174.    Building elf or a.out shared libraries can easily be configured in the
  175.    Makefile.cfg. Be sure to issue a `make clean' after changing the
  176.    TARGET_FORMAT setting. 
  177.  
  178.    If you specified elf, `make install' will compile the shared libs as
  179.    they don't come pre-built. This is nothing to worry about. Compilation
  180.    is easy and will not use any user action.
  181.  
  182.    This is not true for a.out and there is a special hack in the makefiles
  183.    for this. As svgalib is distributed there is no attempt to recompile the
  184.    a.out sharedlibs. Prebuild images are already included.
  185.  
  186.    If you have the required tools-* installed and if you made patches (or
  187.    just feel like recompiling) issue a `make clean' and `make shared' to
  188.    enforce recompiling of the a.out sharedlibs (from then on even a make
  189.    install will update the shared library if sources changed). Issue `make
  190.    distclean' after a `make shared' to fall back to the distribution
  191.    behaviour.
  192.  
  193.    However, getting the right tools becomes more and more complicated as
  194.    it gets less important to give a.out support. Right now you even have to
  195.    hand patch the last tools-* release to make it usuable with current
  196.    compilers. In general I discourage trying to compile the a.out libs.
  197.    Just use the images that come with svgalib.
  198.  
  199. 3. SVGALib port to ALPHA AXP hardware
  200.    David Mosberger-Tang <davidm@azstarnet.com> contributed patches to make
  201.    SVGALib run on Linux/Alpha namely APECS-based and low-cost PCI boards.
  202.  
  203.    It is known to run with #9 GXE (but all S3-based graphic cards should
  204.    work if they are supported). He wrote a patch to make SVGALib run on
  205.    Jensen boards. They own EISA slots instead of PCI slots and can not map
  206.    video memory as a continous frame buffer. Use this patch with extreme
  207.    care (do sync disks before starting compiled software for the first
  208.    time!). He also recommends using SVGATextMode in combination with
  209.    SVGALib-based software otherwise the library crunches the font
  210.    (although the system should not crash). Here is a list of what is not
  211.    supported yet: 
  212.  
  213.    - vc-switching (due to lack of some signals supported by current ALPHA
  214.      kernels but this could be fixed now [He used a 1.3.28 to test])
  215.    - font restoring without SVGATextMode (He still works on it)
  216.    - clearing screen in mode 320x200x256
  217.    - vgagl (will never be ported by me because he thinks it is too much work
  218.      and useless in the end)
  219.  
  220.    He tested his patch with an ELSA Winner 1000 but it should even work on
  221.    other cards (He recommends to always sync disks, it saves a lot of time
  222.    and sweat :-) ). 
  223.  
  224.    If you compile it on a machine where __alpha__ is defined, you should
  225.    have configured your kernel correctly once. This is due to the fact
  226.    that he saw no other possibility to determine the type of ALPHA AXP
  227.    hardware you use. During kernel configuration your are asked which
  228.    architecture you want to compile it for. 
  229.  
  230.    Also important: you must have the right libc compiled for your board
  231.    hardware. This is due to the I/O functions in libc. They need to be
  232.    compiled especially for your Alpha board. Have a look at
  233.    ftp.azstarnet.com for precompiled libc's (although this is not very
  234.    reliable, most of the libc-packages are sources). 
  235.  
  236.    Note that he feels __not__ responsible for damage to your hardware when
  237.    using this software. If you encounter any problems that refer to
  238.    Jensen-type hardware you can send an email to me: 
  239.  
  240.    If you encounter any problems that refer to Jensen-type hardware you
  241.    can send an email to:
  242.             Stephan Kanthak <kanthak@i6.informatik.rwth-aachen.de>
  243.  
  244.    Here are some additional comments Michael Weller wrote on the first
  245.    ALPHA patches from David Mosberger-Tang: 
  246.  
  247.    No reports of other hardware working or not exist yet. This is REAL
  248.    ALPHA software. I don't know any installation details. In theory you
  249.    just recompile it out of the box (When you are using Linux/Alpha you
  250.    are a hacker and should be able to create a shared lib w/o problems). I
  251.    don't know any details, in case of problems please contact David. 
  252.  
  253.    From what I saw you might have to use static libs. That's no real
  254.    problem, a simple 'make static' will create a static lib.
  255.  
  256.    The background mode is said not to work on Dec-ALPHA, so you better
  257.    disable it in Makefile.cfg
  258.